home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / pctchnqs / 1991 / number3 / dirsize.pas < prev    next >
Pascal/Delphi Source File  |  1991-06-13  |  1KB  |  42 lines

  1. program clstrsze;
  2. uses dos;
  3.  
  4. function bytesPerCluster(drive : byte) : integer;
  5. var
  6.    regs : registers;
  7.    sectorsPerCluster, bytesPerSector : integer;
  8. begin
  9.    regs.ah := $1c; regs.dl := drive;
  10.    MSdos (regs);
  11.    sectorsPerCluster := regs.al; bytesPerSector := regs.cx;
  12.    bytesPerCluster := sectorsPerCluster * BytesPerSector;
  13. end;
  14.  
  15. function dir_size (clusSize : Integer) : Longint;
  16. var
  17.   FileInfo: SearchRec;
  18.   numClusters : integer;
  19. begin
  20.   numClusters := 0;
  21.   FindFirst('*.exe', Archive, FileInfo);
  22.   while DosError = 0 do begin
  23.     if ((FileInfo.Size mod clusSize) <> 0) then
  24.       numClusters := numClusters + (FileInfo.Size div clusSize) + 1
  25.     else
  26.       numClusters := numClusters + (FileInfo.Size div clusSize);
  27.     FindNext(FileInfo);
  28.     dir_Size := numClusters * clusSize;
  29.   end;
  30. end;
  31.  
  32. var
  33.    disk : byte;
  34.    diskLetter : char;
  35.    clusterSize: integer;
  36.  
  37. { MAIN } begin
  38.    diskLetter := 'E'; clusterSize := 1024;
  39.    disk := ord(diskLetter)-64;
  40.    writeln(dir_size(BytesPerCluster(disk)));
  41. end.
  42.